package com.jxb.sort;

import java.util.Arrays;

/**
 * 插入排序
 */
public class InsertSort {

    public static void main(String[] args) {
        int[] nums = {1,4,3,6,0,4,5,9,4,2,6};
        System.out.println("排序开始----------------->" + Arrays.toString(nums));
        int[] res = sortArray1(nums);
        System.out.println("排序结束----------------->" + Arrays.toString(res));
    }

    public static int[] addElement(int[] arr, int index, int tempElement) {
        // 截取数组长度 - 1 的长度的数组
        int[] newArr = Arrays.copyOf(arr, arr.length + 1);
        newArr[index] = tempElement;
        // 返回新得到的数组
        return newArr;
    }


    public static int[] sortArray1(int[] nums) {
        if (nums.length == 0){
            return nums;
        }
        //当前待排序的数据
        int currentValue;
        for (int i = 0;i<nums.length-1;i++) {
            //已被排序的数据索引
            int preIndex = i;
            //获取当前需要排序的数据
            currentValue = nums[preIndex + 1];
            while (preIndex >= 0 && currentValue<nums[preIndex]) {
                //将已排序的数据向后移动一位
                nums[preIndex + 1] = nums[preIndex];
                preIndex--;
            }
            nums[preIndex+1] = currentValue;
        }
        return nums;
    }

}
